Significant difficulties are experienced by users when programmable complex devices are infrequently used or programmed, or when a user attempts to use uncommon functions of these devices, such as, for example video cassette recorders (hereinafter "VCRs"). Studies have concluded that 80% of users cannot correctly program their VCRs. This has been due, in part, to the fact that manufacturers continue to add more features to existing devices, without simplifying those which already exist.
People learn most efficiently through the interactive experiences of doing, thinking, and knowing. For ease-of-use, efficiency, and lack of frustration of the user, utilizing the device should be intuitive. Users should be able to operate the device without referring to an instruction manual. Well-designed products should contain visual clues which prompt and convey their meanings, however, prior art devices do not always live up to this ideal. This problem is accentuated by various manufacturers and designers who focus on the production and design of feature-rich systems, rather than on ones which are also "User Friendly" and thus easier to use. Therefore, many products are extremely complex and thus difficult to use, thereby preventing all but the most technically advanced people from using them.
The act of programming, or determining a sequence of operations to be performed by, for example, a VCR, several steps are required. In addition to setting the clock, the user must assign a program number, set the current date and current time, select the start and stop times, choose the channel from which to record, and choose a tape speed. These actions require a minimum of four actuators ("Program", "+", "-", and "Enter"). Presently, some VCR controls contain up to 123 buttons, double function keys, and symbols which are not immediately recognized by the user.
In order to simplify commonly-used functions, a number of methods have been devised. Certain VCRs employ a bar-code reader in order to allow entry of programming steps from a menu of functions, or from an encoded description of an event to be programmed. However, this method suffers from the limitation that the channel, time and duration must be available in encoded form, otherwise the use of the device will not simplify the use or programming of the VCR. These machines come with a laminated sheet of bar codes. In order to program the VCR, the user must press a button on a wand, which lights its tip, and then run or pass the tip over a bar-code, to set each step separately. Finally, when all the information has been scanned in, the user must press the "Transmit" button. The "VCRplus+" is a device which allows the entry of a code representing a channel, time, date and duration of a program to be recorded, which when entered into the remote control device, is translated into commands for programming the VCR, and transmitted through an infrared link to the VCR, thus programming the VCR. This system has the limitations that the published codes must be available, and manually entered, which may be thus be erroneously entered, and the system does not allow for rescheduled programs, so that any variation in schedule will result in a defective recording. The time and date in the VCR device must also be set accurately for this system to operate.
On-screen programming systems exist; however, these generally require the user to scroll through menus and option choices without allowing direct entry of programming information. Direct-entry systems are available with, for example, programmable controllers with keypad entry. However, these do not generally have full information visual displays, meaning that all vital information is not or cannot be simultaneously displayed, and must be "multiplexed", meaning that data must share display space with other data, displayed at different times. In a VCR with on-screen programming, all programming information feedback is displayed on the television screen, and prompts are provided to guide the user through the necessary steps. Some VCRs have numeric keypads to enter the information, while others allow choices to be entered by the selection method, which depends on the use of "up" and "down" arrow keys to select a desired option.
The other major presently used method, which is available on most VCRs, as well as other types of programmable devices, is Display Panel Programming. This method is generally inadequate because full instructions are not normally available on the display panel, and the amount of information simultaneously displayed is limited. Users do not need a television set to see the displayed information, but they might have trouble reading the small, usually multifunctional multiplexed display and keypad. When programming the VCR, information may be entered on the display panel using the selection method, with either the "up" key or both "up" and "down" keys, or by direct entry in devices that support such a system.
The remote control device of a VCR is often the primary input device, and it sometimes has control functions not accessible from a keypad input present on the VCR itself. Remote controls often contain many buttons, which may be found overwhelming and confusing by the user. This results in under-utilization of the various actuators or buttons, and consequently, various useful features are unused or inaccessible, or the programming operation is inefficient. The extra clutter results in a greater "search time", the time needed to locate and execute a desired function, and thus it takes longer to program the VCR. The general structure of the search time in programming a VCR is shown diagrammatically in FIG. 1. Other problems arise from the layout and coding of the buttons. A study performed by Kamran Abedini and George Hadad in 1987 entitled "Guidelines for Designing Better VCRs", Report No. IME 462, Feb. 4, 1987, California State Polytechnic University, incorporated herein by reference, has shown that varying the shape of the remote control device is more effective than varying its size. In addition, they found that color coding and adequate contrast can effect a significant improvement in programming performance. Abedini and Kamran, in "An Ergonomically-improved Remote Control Unit Design", Interface '87 Proceedings, 375-380 (1987), incorporated herein by reference, found that 78% of the people surveyed favored direct entry numbers (0-9) in addition to labels, symbols, discrete volume switches, and channel up/down buttons for casual searching. In addition, the people surveyed preferred remote controls which fit comfortably into their hand.
Many techniques have been used to facilitate the programming of devices such as VCRs, including:
Display Panels (1982)--Programmed with the aid of an LED display panel on the front of the machine. PA1 Programming Via Remote Control (1983)--Programmed using a remote control device with keys for input. PA1 On-Screen Displays (1984)--Programmed by a series of menus on the television screen. PA1 Bar Code Scanners (1987)--Programmed by a wand passing over a series of lines, which are decoded and then transmitted to the VCR. PA1 Light Pens (1987)--Programmed by aiming a pointing device with a light beam sensor at the television screen, which allows timing signals to be extracted to determine the position of the device with respect to the screen, and hence, the intended instruction. PA1 Video Program System Signal Transmitters (1988)--The VCR is programmed by entering the unique code number of a desired program to record, which is emitted by television stations in West Germany as videotext digital signals associated with each program. PA1 Phone Lines (1989)--Programmed over a telephone line at from a remote location. The numeric keys on the phone are the input keys. PA1 Video Memories (1989)--Programmed by a computer from a remote location. For example, a user contacts a service, who then records certain programs at a user's request. These can be characterized in a number of ways, e.g. comedies, movies, etc. and the service will then manually scan the broadcast schedules for these provided characterizations and record the desired programs. PA1 Voice Coaches (1990)--Programmed by responding to voice instructions, e.g. speech prompts, from the remote control. PA1 an input device, producing an input instruction signal; PA1 a control means for receiving said input instruction signal, and storing a program instruction associated with said input instruction signal, said control means storing sufficient program instructions to perform an action on the occurrence of an event, said control means monitoring a status of said apparatus to determine the occurrence of various events, comparing the determined events with the program instructions, and performing said action on the occurrence of said event; PA1 a display means for interactively displaying information related to the instructions to be received, and responsive thereto, controlled by said control means, so that the programmer is presented with feedback on a current state of the apparatus and said program instruction; PA1 wherein said control means further comprises means for detecting one or more characteristics of said input instruction signal independent of said program instruction selected from the group consisting of a velocity component, an efficiency of input, an accuracy of input, an interruption of input, a high frequency component of input and a past history of input by the programmer, whereby when said control means detects a characteristic indicating that said display means is displaying information in a suboptimal fashion, said control means controls said display means to display information in a more optimal fashion. PA1 an input device, producing an input instruction signal; PA1 a control means for receiving said input instruction signal, and storing a program instruction associated with said input instruction signal, said control means storing sufficient program instructions to perform an action on the occurrence of an event, said control means monitoring a status of said apparatus to determine the occurrence of various events, comparing the determined events with the program instructions, and performing said action on the occurrence of said event; PA1 a display means for interactively displaying information related to the instructions to be received, and responsive thereto, controlled by said control means, so that the programmer is presented with feedback on a current state of the apparatus and said program instruction; PA1 wherein said control means further comprises means for detecting a need by the programmer for more detailed information displayed on said display means, by detecting one or more characteristics of said input instruction signal independent of said program instruction selected from the group consisting of a velocity component, an efficiency of input, an accuracy of input, an interruption of input, a high frequency component of input and a past history of input by the programmer, whereby when said control means detects a characteristic indicating that said display means is insufficiently detailed information, said control means controls said display means to display more detailed information. PA1 an input device, producing an input instruction signal; PA1 a control means for receiving said input instruction signal, and storing a program instruction associated with said input instruction signal, said control means storing sufficient program instructions to perform an action on the receipt of data indicating an event, said control means monitoring the data input; PA1 a display means for interactively displaying information related to the instructions to be received, and responsive thereto, controlled by said control means, so that the programmer is presented with feedback on a current state of the apparatus and said program instruction; PA1 wherein said control means receives a programming preference indicating a desired event from said input device which does not unambiguously define said event, and said control means monitors said data and causes the occurrence of the action when a correlation between said programming preference and said monitored data is above a predetermined threshold, indicating a likely occurrence of said desired event. PA1 means for storing data from said data input; PA1 an input device, producing an input instruction signal; PA1 a control means for receiving said input instruction signal, and storing a program instruction associated with said input instruction signal, said control means storing sufficient program instructions to perform an action on the receipt of data from said data input indicating an event, said control means monitoring the data input to determine the occurrence of various events, comparing the determined events with the program instructions, and performing for storing the data said action on the occurrence of said event; PA1 wherein said control means receives identifying data from at least one of said input device and the data input, said identifying data being stored separately from said input data on a storage medium. The programmable information storage apparatus may also include means for reading said identifying data stored separately on said storage medium, and may also receive as an input said identifying data. PA1 a predetermined logical sequence of programming options is presented to the user on said display device, in a plurality of display screens, each of said display screens differing in available programming choices; said logical sequence including a correct sequence of choices to set an operable control program, so that no necessary steps are omitted; PA1 said external stimulus comprises a timing device, and said display comprises a display option for programming said plant to perform an action at a time which is input through said input device as a relative position on said display device, said relative position including a means for displaying an absolute time entry and means for displaying a relative time entry, said display also comprising a display option means for performing an action at a time; PA1 said control comprises means for presenting the user, on said display device, with a most probable action, which may be selected by the user through activation of said input device without entering data into said controller through said input device relating to both said action and said event; PA1 said display also comprising means for indicating completion of a programming step after entry of data, which means will not allow the user to indicate to said controller that said programming step is completed if information necessary for execution of said step is not available to said controller; and PA1 said controller being capable of controlling said display device to present information to the user relating to the use of the apparatus if necessary for use of the device by the user. PA1 a source of program material; PA1 means for determining a viewer preference; PA1 means for receiving the program material from said source; PA1 means for characterizing the program material based on its content; PA1 means for correlating said characterized content of the program material with said determined viewer preference to produce a correlation index; and PA1 means for presenting the program material to the viewer, if said correlation index indicates a probable high correlation between said characterization of the program material and said viewer preference. PA1 means for decrypting the program material to produce a decryption event; and PA1 means for charging an account of the viewer based on the occurrence of a decryption event. PA1 a source of program material; PA1 means for determining a viewer preference; PA1 means for receiving the program material from said source; PA1 means for storing the program material; PA1 means for preprocessing the program material to produce a reduced data flow information signal retaining information relating to a character of the program material and eliminating data not necessary to characterize the program material; PA1 means for characterizing said information signal based on its content; PA1 means for correlating said characterized content of said information signal with said determined viewer preference to produce a correlation index; and PA1 means for presenting said stored program material to the viewer, if said correlation index indicates a probable high correlation between said characterization of said information signal and said viewer preference. The system may also include a means for storing said information signal, wherein said characterizing means characterizes said stored information signal, and also a memory for storing the program material while said characterizing means produces characterized content and said correlating means produces said correlation index. PA1 means for inputting a program; PA1 means for storing said program; PA1 means for characterizing said sensor signal to produce a characterized signal; and PA1 means for comparing said characterized signal with a pattern stored in a memory to produce a comparison index, PA1 wherein said actuator signal is produced on the basis of said comparison index and said program, wherein said characterization comprises an Affine transformation of said sensor signal. The characterization may comprise both an Affine transformation and a Fourier transformation. PA1 storing a plurality of templates; PA1 storing the image data in the data processor; PA1 generating a plurality of addressable domains from the stored image data, each of the domains representing a portion of the image information; PA1 creating, from the stored image data, a plurality of addressable mapped ranges corresponding to different subsets of the stored image data, the creating step including the substep of: PA1 optionally transforming the color map values of the pixels of each domain by a function including at least one scaling function for each axis of the color map, each of which may be the same or different, and selected to maximize the correspondence between the domains and ranges to which they are to be matched; PA1 selecting, for each of the domains, the one of the mapped ranges having color map pixel values which most closely correspond to the color map pixel values of the domain according to a predetermined criteria, wherein the step of representing the image color map information includes the substep of representing the image color map information as a set of values each including an identifier of the selected mapped range and the scaling functions; and PA1 selecting a most closely corresponding stored template, based on the identifier of the color map mapped range, the scaling functions and the set of identifiers representing the image information. The first criteria may comprise minimizing the Hausdorff distance between each domain and the selected range. PA1 storing delayed image data, which represents an image of a moving object differing in time from the image data in the data processor; PA1 generating a plurality of addressable further domains from the stored delayed image data, each of the further domains representing a portion of the delayed image information, and corresponding to a domain; PA1 creating, from the stored delayed image data, a plurality of addressable mapped ranges corresponding to different subsets of the stored delayed image data; PA1 matching the further domain and the domain by subjecting a further domain to one or both of a corresponding transform selected from the group consisting of a null transform, a predetermined rotation, an inversion, a predetermined scaling, and a predetermined frequency domain preprocessing, which corresponds to a transform applied to a corresponding domain, and a noncorresponding transform selected from the group consisting of a predetermined rotation, an inversion, a predetermined scaling, a translation and a predetermined frequency domain preprocessing, which does not correspond to a transform applied to a corresponding domain; PA1 computing a motion vector between one of the domain and the further domain, or the set of identifiers representing the image information and the set of identifiers representing the delayed image information, and storing the motion vector; PA1 compensating the further domain with the motion vector and computing a difference between the compensated further domain and the domain; PA1 selecting, for each of the delayed domains, the one of the mapped ranges which most closely corresponds according to predetermined criteria; PA1 representing the difference between the compensated further domain and the domain as a set of difference identifiers of a set of selected mapping ranges and an associated motion vector and representing the further domain as a set of identifiers of the selected mapping ranges; PA1 determining a complexity of the difference based on a density of representation; and PA1 when the difference has a complexity below a predetermined threshold, selecting, from the stored templates, a template which most closely corresponds to the set of identifiers of the image data and the set of identifiers of the delayed image data. PA1 means for storing template data; PA1 means for storing the image data; PA1 means for generating a plurality of addressable domains from the stored image data, each of the domains representing a different portion of the image information; PA1 means for creating, from the stored image data, a plurality of addressable mapped ranges corresponding to different subsets of the stored image data, the creating means including means for executing, for each of the mapped ranges, a procedure upon the one of the subsets of the stored image data which corresponds to the mapped range; PA1 means for assigning identifiers to corresponding ones of the mapped ranges, each of the identifiers specifying for the corresponding mapped range an address of the corresponding subset of stored image data; PA1 means for selecting, for each of the domains, the one of the mapped ranges which most closely corresponds according to predetermined criteria; PA1 means for representing the image information as a set of the identifiers of the selected mapped ranges; and PA1 means for selecting, from the stored templates, a template which most closely corresponds to the set of identifiers representing the image information.
As the technology becomes more mature, and VCRs and other types of programmable consumer electronic devices become less expensive, a proportionally less-educated segment of society will be confronted with these devices. While education and ability to program a VCR are not necessarily correlated, the present invention is directed toward improving the interface to allow all segments of the population to effectively interface with these programmable devices. By making the user interface more intuitive, and facilitating program entry by all levels of users, the present method and apparatus allow a manufacturer to produce a single device, without regard to the ability of the user to learn the programming steps. It is also noted that, because of their previous inability to provide a programmable consumer electronic device with various user interface levels, manufacturers have had to compromise the programming power of their user interface to allow less than advanced users to program it, or to compromise the usability of the device in order to make the full programming power available.